#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int ckb[10005],ckc[10005];
vector<int>ck[1005];
int f[40005][1005];
bool cmp(int a,int b){
    return a>b;
}
int main()
{
    int n,m,v;
    cin>>n>>m>>v;
    for(int i=0;i<n;i++){
        cin>>ckb[i]>>ckc[i];
    }
    for(int i=1;i<=m;i++){
        int t,a;
        cin>>a>>t;
        ck[t].push_back(a);
    }
    // for(int i=0;i<n;i++)
    // {
    //     cout<<ck[i][0];
    // }
    for(int i=0;i<n;i++){
        sort(ck[i].begin(),ck[i].end(),cmp);
    }
    for(int i=0;i<n;i++){
        for(int j=1;j<=40000;j++){
            int sumjz=0;
             int sumdj=0;
             sumdj+=ckb[i];
            f[j][i]=f[j][i-1];
            for(int k=0;k<ck[i].size();k++){
                sumdj+=ckc[i];
                sumjz+=ck[i][k];
                if(j-sumdj>=0){
                    f[j][i]=max(f[j][i],f[j-sumdj][i-1]+sumjz);
            }
            else break;
        }
    }}
    for(int i=1;i<=40000;i++){
         if(f[i][n-1]>=v+i)cout<<i;
         else continue;
         break;
    }
    return 0;
}